//导入 express
const express = require('express')
//创建web服务器
const app = express();

//启动服务器
app.listen(8080, () => {
	console.log('8080 端口服务器已启动 http://127.0.0.1:8080')
})
app.use((req,res,next)=>{
	//响应头部中可以携带一个 Access-Control-Allow-Origin字段，其语法如下:
	//其中,origin参数的值指定了允许访问该资源的外域URL。
	//下面的字段只允许 来自http://127.0.0.1:8848 的请求
	res.setHeader('Access-Control-Allow-Origin','http://127.0.0.1:8848')
	//res.setHeader('Access-Control-Allow-Origin','*')//允许所有的域名访问
	//CORS仅支持客户端向服务器发送如下的9个请求头:
	// Accept、Accept-Language、Content-Language、DPR、Downlink、Save-Data、Viewport-Width、Width ,Content-Type 
	// (值仅限于text/plain、multipart/form-data、application/x-www-form-urlencoded三者之一)
	// 如果客户端向服务器发送了额外的请求头信息，则需要在服务器端，
	// 通过 Access-Control-Allow-Headers 对额外的请求头进行声明，否则这次请求会失败!
	res.setHeader('Access-Control-Allow-Headers','Content-Type,x-Custom-Header')
	
	//默认情况下，CORS仅支持客户端发起GET、POST、HEAD请求。
	//如果客户端希望通过 PUT、DELETE等方式请求服务器的资源，则需要在服务器端，
	//通过Access-Control-Alow-Methods来指明实际请求所允许使用的HTTP方法。
	//只允许POST、GET、DELETE、HEAD请求方法
	res.setHeader('Access-Control-Allow-Methods','POST,GET,DELETE,HEAD')
	//res.setHeader('Access-Control-Allow-Methods','*')//支持所有的HTTP请求方法
	next()
})


//导入路由模块
const apiRouter=require('./09.1apiRouter路由模块')
//注意:app. use()函数的作用，就是来注册全局中间件
app.use('/api',apiRouter)